package com.adou.service;

import com.adou.common.dto.InConditionDto;
import com.adou.common.model.SearchCondition;
import com.adou.service.base.BaseService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface FormSearchService extends BaseService<SearchCondition> {
    /**
     * 新增查询条件
     *
     * @param searchCondition 查询条件类
     * @param fids            表单id 多个以“,”分隔
     * @return
     */
    public int insertSearchCondition(SearchCondition searchCondition, String fids);

    /**
     * 更新查询条件
     *
     * @param searchCondition 查询条件类
     * @param fids            表单id 多个以“,”分隔
     * @return
     */
    public int updateSearchCondition(SearchCondition searchCondition, String fids);

    /**
     * 删除查询条件
     *
     * @param searchCondition 查询条件类
     * @return
     */
    public int deleteSearchCondition(SearchCondition searchCondition);

    /**
     * 获取查询条件
     *
     * @param ifid 表单id
     * @return
     */
    public Map<String, Object> getSearchCondition(Long ifid);

    /**
     * 获取查询数据
     *
     * @param inConditionDtoList 查询条件列表
     * @param ifid               表单id
     * @param pageNum            页大小
     * @param pageSize           页数
     * @return
     */
    public Map<String, Object> getSearchData(List<InConditionDto> inConditionDtoList, Long ifid, int pageNum, int pageSize, Boolean sysflag);


    /**
     * 导出查询数据
     *
     * @param inConditionDtoList 查询条件列表
     * @param ifid               表单id
     * @return
     */
    public Map<String, Object> outSearchData(List<InConditionDto> inConditionDtoList, Long ifid);

    /**
     * 导入数据到表单
     *
     * @param ifid 表单id
     * @param file 导入文件流
     * @return
     */
    public Map<String, Object> inDataToForm(Long ifid, MultipartFile file);

    public Map<String, Object> findSearchCondition(SearchCondition searchCondition);

    /**
     * 根据表单主键查询字段列表
     * 表单主键复数则查询公有字段列表
     * @param ids
     * @return
     */
    Map<String, Object> queryFields(String ids);

}
